package com.api.demo.dto.business.company;

import com.api.demo.dto.business.ApiDTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.URL;

import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;

/**
 * @description: 创建商户DTO
 * @author: yanming
 * @createDate: 2022/12/26 14:35
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class CompanyApiDTO extends ApiDTO {


    private static final long serialVersionUID = 8068823542455973201L;
    @ApiModelProperty(value = "企业全称", required = true)
    @NotBlank(message = "企业全称不能为空")
    private String companyName;

    @ApiModelProperty(value = "信用代码", required = true)
    @NotBlank(message = "信用代码不能为空")
    private String creditCode;

    @ApiModelProperty(value = "经营范围", required = true)
    @NotBlank(message = "经营范围不能为空")
    @Length(max = 1000, message = "经营范围超过长度1000")
    private String businessScope;

    @ApiModelProperty(value = "成立时间", required = true)
    @NotBlank(message = "成立时间不能为空")
    private String setUpDate;

    @ApiModelProperty(value = "所在地区", required = true)
    @NotBlank(message = "所在地区不能为空")
    private String companyProvince;

    @ApiModelProperty(value = "所属行业", required = true)
    @NotBlank(message = "所属行业不能为空")
    private String industry;

    @ApiModelProperty(value = "企业规模", required = true)
    private String companySize;

    @ApiModelProperty(value = "营业执照", required = true)
    @NotBlank(message = "营业执照不能为空")
    @URL(message = "请填写正确的营业执照链接")
    private String businessLicense;

    @ApiModelProperty(value = "平台加盟合同", required = true)
    @NotBlank(message = "平台加盟合同不能为空")
    @URL(message = "请填写正确的平台加盟合同链接")
    private String contract;

    @ApiModelProperty(value = "隐私协议", required = true)
    @URL(message = "请填写正确的隐私协议链接")
    private String privacyAgreement;

    @ApiModelProperty(value = "开户许可")
    @URL(message = "请填写正确的开户许可链接")
    private String openLicense;

    @ApiModelProperty(value = "企业logo")
    @URL(message = "请填写正确的企业logo链接")
    private String companyLogo;


    @ApiModelProperty(value = "公司法人姓名", required = true)
    @NotBlank(message = "公司法人姓名不能为空")
    private String companyMan;

    @ApiModelProperty(value = "法人电话", required = true)
    @NotBlank(message = "法人电话不能为空")
    private String mobile;

    @ApiModelProperty(value = "法人身份证号码", required = true)
    @NotBlank(message = "法人身份证号码不能为空")
    private String idCardCode;

    @ApiModelProperty(value = "法人身份证正面")
    @URL(message = "法人身份证正面链接不正确")
    private String idCardFront;

    @ApiModelProperty(value = "法人身份证反面")
    @URL(message = "法人身份证反面链接不正确")
    private String idCardBack;


    @ApiModelProperty(value = "联系人姓名", required = true)
    @NotBlank(message = "联系人姓名不能为空")
    private String linkMan;

    @ApiModelProperty(value = "联系人电话", required = true)
    @NotBlank(message = "联系人电话不能为空")
    private String linkMobile;

    @ApiModelProperty(value = "联系人身份证号码", required = true)
    @NotBlank(message = "联系人身份证号码不能为空")
    private String linkIdCardCode;

    @ApiModelProperty(value = "邮箱", required = true)
    @NotBlank(message = "邮箱不能为空")
    @Email(message = "请输入正确的联系人邮箱")
    private String linkEmail;


    @ApiModelProperty(value = "单位名称/发票抬头", required = true)
    @NotBlank(message = "单位名称/发票抬头不能为空")
    private String invoiceCompanyName;


    @ApiModelProperty(value = "银行账户", required = true)
    @NotBlank(message = "银行账户不能为空")
    private String bankCode;

    @ApiModelProperty(value = "开户名称", required = true)
    @NotBlank(message = "开户名称不能为空")
    private String bankName;

    @ApiModelProperty(value = "单位地址", required = true)
    @NotBlank(message = "单位地址不能为空")
    private String invoiceAddress;

    @ApiModelProperty(value = "开票电话", required = true)
    @NotBlank(message = "开票电话不能为空")
    private String invoiceMobile;

    @ApiModelProperty(value = "开票纳税识别号", required = true)
    @NotBlank(message = "开票纳税识别号不能为空")
    private String invoiceTaxCode;


    /**
     * 快递信息
     */
    @ApiModelProperty(value = "收件人", required = true)
    @NotBlank(message = "收件人不能为空")
    private String addressee;

    @ApiModelProperty(value = "收件人手机号码", required = true)
    @NotBlank(message = "收件人手机号码不能为空")
    private String addresseeMobile;


    @ApiModelProperty(value = "收件地区", required = true)
    @NotBlank(message = "收件地区不能为空")
    private String deliveryArea;


    @ApiModelProperty(value = "详细地址", required = true)
    @NotBlank(message = "详细地址不能为空")
    private String addressDesc;



    @ApiModelProperty(value = "门牌照url")
    @URL(message = "请填写正确的门牌照url链接")
    private String doorplatePicture;

    @ApiModelProperty(value = "前台照url")
    @URL(message = "请填写正确的前台照url链接")
    private String frontDeskPicture;

    @ApiModelProperty(value = "办公场所照url")
    @URL(message = "请填写正确的办公场所照url链接")
    private String officePicture;

    @ApiModelProperty(value = "税务申报单url")
    @URL(message = "请填写正确的税务申报单url链接")
    private String taxDeclare;


    @ApiModelProperty(value = "发票类目", required = true)
    @NotBlank(message = "发票类目不能为空")
    private String invoiceCategory;

    @ApiModelProperty(value = "结算业务场景", required = true)
    @NotBlank(message = "结算业务场景不能为空")
    private String settleAccounts;

    @ApiModelProperty(value = "更多说明")
    private String moreDesc;

}